﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;

namespace BasicCSharp
{
    //1.Tanımı
    public class DovusLigi
    {
        //2.constructor ( memoryden nasıl yer aldığı )
        public DovusLigi()
        {
            //  Console.WriteLine("Hash code:" + this.GetHashCode());
        }
        //3.Özellikleri
        public int Yılı { get; set; }
        public int UyeSayısı { get; set; }
        public string Ulkesi { get; set; }
        public string Kategorisi;

        //public int OdulMiktarı { get; set; }
        private int _odulMiktari;
      
        public int OdulMiktari
        {
            get
            {
                return _odulMiktari;
            }
            set
            {
                if (value > 10000)
                    throw new Exception("Ödüller 10.000 den büyük olamaz");
                _odulMiktari = value;
            }
        }

        //4.Methodları 
        public void UyelereEmailAt()
        {
            Console.WriteLine("Üyelere email gidiyor");

            Dovuscu[] myDovuscuListe = DovuscuListesiOlustur();
            TopluEmailGonder(myDovuscuListe);

            Console.WriteLine("Üyelere email gitti");
            Console.ReadLine();
        }

        private void TopluEmailGonder(Dovuscu[] myListe)
        {
            foreach (var myDovuscu in myListe)
            {
                string alici = myDovuscu.Email;
                string konu = "Eğitim Test Email";
                string emailIcerik = "Dövüşçü sistemi Email testi";
                EmailSender.sendEmail(myDovuscu.İsim, alici, emailIcerik);
            }
        }

        private void EmailGonder(string alici, string gonderen, string konu, string emailIcerik)
        {
            Console.WriteLine("Email gönderiliyor");
            Console.WriteLine("Alıcı:" + alici);
            Console.WriteLine("Gonderen :" + gonderen);
            Console.WriteLine("Konu:" + konu);
            Console.WriteLine("emailIcerik:" + emailIcerik);
        }

        private static Dovuscu[] DovuscuListesiOlustur()
        {
            var myListe = new Dovuscu[3];
            myListe[0] = new Dovuscu("Bülent", "bulentgulster@gmail.com");
            myListe[1] = new Dovuscu("Ufuk", "usarnic@gmail.com");
            myListe[2] = new Dovuscu("Rıfat", "rifaterdemsahin@gmail.com");

            return myListe;
        }
    }

    class EmailSender
    {
        public static void sendEmail(string aliciIsim, string emailAlici, string icerik)
        {
            var fromAddress = new MailAddress("kariyermimarim@gmail.com", "kariyermimarim");
            var toAddress = new MailAddress(emailAlici, aliciIsim);
            const string sifre = "mm1123MM";
            //sifre = "2323";
            //Burdan devam
            var smtp = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(fromAddress.Address, sifre)
            };
            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = "sistem test emaili",
                Body = icerik
            })
            {
                smtp.Send(message);
            }
        }
    }

    class TurkDovusLig : DovusLigi
    {

    }

    class MMTurkDovuslig : TurkDovusLig
    {

    }
}
